Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
In computing, multi-core processors are widely used. A typical multi-core processor is a single component with two or more independent cores. A conventional operating system (OS) may employ a variant of round-robin or multilevel feedback queue scheduling mechanism in a multi-core environment, in which multiple processes can be sequentially run in a time-division manner. In accordance with the round-robin scheduling mechanism, the OS controls the computing loads of the individual cores without considering particular characteristics of application programs or end user's intentions. In this regard, the capabilities of the multi-core processor are not fully utilized, with the round-robin or multilevel feedback queue scheduling mechanism.
In order to fully utilize the capabilities of the multi-core processor, it is necessary to consider parallel processing adapted to the multi-core processor in advance when developing application programs. Specifically, when program developers who are to develop application programs adapted to the multi-core processor, such program developers need to extract parts that can be run in parallel in the application programs and reconstruct the parts as independent program modules. However, such reconstruction is no simple task. Further, it is not possible to automatically translate existing application programs into other programs adapted to the multi-core processor. In this regard, it is important in the multi-core environment to efficiently run legacy software, which is not adapted to the multi-core processor, on the multi-core processor.